<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // console.log(this);//全局的this 指向window
    // function text() { //全局作用域或者普通函数中的this 指向window
    //     console.log(this);
    // }
    // text()

    // var nun = 0
    // var obj = {
    //     a: 2,
    //     foo: function () {
    //         console.log(this);//obj

    //         function text() {
    //             console.log(this);//window
    //         }
    //         return text
    //         // (function () {  //函数立即执行全部都指向window
    //         //     console.log(this);
    //         // })();

    //     }

    // }
    // // obj.foo()()
    // // res()

    // arr = [1, 5, 2]
    // arr2 = [5, 6]
    // arr.forEach(function (item) {
    //     console.log(item);
    // }, arr2)//forEach第二个参数可以改变this的指向

    var a = 0;
    const obj = {
        b: 20,
        foo: foo,
        fun: () => {
            console.log(this)
        }
    }
    function foo(a, b, c, d, e, f) {
        console.log(a, b, c, d, e, f);
        console.log(this);
    }



    obj.foo(1, 2, 3, 4, 5, 6)
    var bar = obj.foo
    bar(5, 5, 5, 5, 5, 5)
    bar.call(obj, 1, 2, 3, 4, 5, 6)
    bar.apply(obj, [1, 2, 3, 4, 5, 6])
    bar.bind(obj)(1, 2, 3, 4, 5, 6)

    obj.foo() //谁调用this就指向谁 这里是指向obj
    obj.fun() //箭头函数中的this指向window

    function Ffn(name, age) {
        this.name = name
        this.age = age
        console.log('wi', this);
        this.say = () => {
            console.log('sayli', this)
            function abc() {
                console.log(this);
            }
            abc()
        }
    }
    const Ffn1 = new Ffn('jessica', 23)
    console.log(Ffn1);
    Ffn1.say()


</script>

</html>